Appearance
Arcgis Server
地图服务
一般发布的是一个动态的地图服务,当客户端向Server发出请求,要求查看地图服务时,Server就会根据请求的范围生成图片,再把图片返回给客户端。另一个客户端如果请求查看另一个范围的地图时,Server又会生成一次图片并返回给客户端。由于这些图片是服务器收到请求以后才开始生成的,也就是动态的根据请求范围生成的,所以速度会比较慢,访问的时候根据网络情况,可能要等待比较长的时间才能看到地图。
地图缓存
这时我们可以使用地图缓存来提高访问的速度。地图缓存就是对服务进行预处理,提前在设计好的比例级别下把地图切割成小块的地图切片,也叫瓦片(Tile),也就是小块的图片,保存在服务器上,这样当接收到请求时服务器就可以直接把已经生成好的瓦片拼起来返回给客户端,而不再动态实时的生成图片了。地图缓存技术减少了GIS服务器和数据库服务器的负担,是提高Web GIS服务质量的一种有效途径。

工具执行完成后切片文件就生成好了,可以在服务器目录下查看切片文件。浏览至服务器目录某个比例尺级别的文件夹下,如:D:\arcgisserver\directories\arcgiscache\GeoLiftGPSTrack\Layers_alllayers\L18
可以看到有一个后缀名为RC.bundle的文件存在,这个bundle文件是ArcGIS for Server创建的紧凑型切片包,也就是把这个比例尺级别下所有生成的瓦片打包成了一个bundle文件,文件名中的R代表的是16进制的行号,C代表的是16进制的列好。如果在定义切片方案时使用的不是紧凑型存储格式,而是松散型存储,则在文件夹下看到的不是一个bundle文件,而是所有的图片格式的文件。使用紧凑型切片可以减少磁盘占用量,更方便的管理和拷贝切片。关于切片的机制、松散型和紧凑型的区别等深入和细节的问题,都可以去帮助文档中找到答案。
测试服务是否正常的使用了切片文件可以借助Firefox浏览器中内置的功能。首先在Firefox中使用ArcGIS JS API快速查看缓存的服务,在地图上右键单击,选择查看页面信息。在页面信息窗口中,单击媒体按钮。检查列表中显示的影像。如果能看到引用服务器缓存目录的 URL,则可以确信缓存正被使用
各有所长
使用动态的地图服务还是地图缓存需要考虑两个问题,一是地图需要更新的频率有多高,二是需要缓存的范围有多大。由于缓存表现的是地图某一个时刻的样貌,所以缓存最适合不经常变化的地图,比如街道地图、地形图、影像图和其他基础地图等。如果数据经常变化,也可以采用定期更新缓存的方式,但是如果需要表现的是实时数据,则不适合用地图缓存,而更适合用动态地图的方式。根据地图的复杂程度和切图的范围,生成缓存可能需要很长的时间完成,如果能够隔离出频繁变化的区域进行单独更新,则可以大大提高重建缓存的效率。
小结
发布地图服务可以通过ArcMap连接到ArcGIS for Server来完成,首先在ArcGIS for Desktop中准备GIS资源,然后连接到ArcGIS for Server,如果需要,可以先将数据源注册到服务器上以避免在发布时自动拷贝数据,发布前在Service Editor编辑器中进行分析,双击分析结果解决错误和警告后就可以将GIS资源发布为GIS服务了。对动态地图服务创建缓存是提高Web GIS服务质量的一种常用方法。对地图进行缓存时,服务器会根据切片方案中设计好的一组比例尺级别来创建瓦片,创建后除非重建或更新缓存,否则无法更改地图的显示样式。所以在构建缓存前要对切片方案进行设计和规划,以保证地图在各个比例尺级别下都有良好的显示效果。动态地图服务适合于数据更新频率高、需要近实时显示的地图,而缓存地图服务适合不会经常变化的地图。
已发布的Web服务可以通过聚合叠加组合成Web应用。通过Web AppBuilder for ArcGIS是一个基于浏览器的工具,可以快速的通过配置来生成Web应用,而不需要编写代码,非常适合创建简单的Web GIS应用。复杂需求的Web应用可以通过自定义开发调用服务的方式实现,或者可以使用Web AppBuilder开发者版本。